Purpose: Create a set of QC requirements for pre-release files which should pass before hand off between BIXU Engineering team to the OpenPedCan team.

Usage

To run this from the command line, use:

Rscript -e "rmarkdown::render('data-pre-release-qc.Rmd', clean = TRUE)"

This assumes you are in the modules directory of the repository, OpenPedCan-analysis/analyses/data-pre-release-qc.

Setup

  • Load libraries
# R analysis packages
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(data.table))

# Magrittr pipe
`%>%` <- dplyr::`%>%`
  • Set up directories.
# directories for input and output files
root_dir <- rprojroot::find_root(rprojroot::has_dir(".git"))
data_dir <- file.path(root_dir, "data")
analyses_dir <- file.path(root_dir, "analyses")
results_dir <- file.path(analyses_dir, "data-pre-release-qc", "results")

# Create results folder if it doesn't exist
if (!dir.exists(results_dir)) {
  dir.create(results_dir)
}

Functions

  • Output table function
missing_biospecimen_table <- function(hist_df, missing_ids, output_file) {
  missing_ids_df <- hist_df %>% 
    dplyr::filter(Kids_First_Biospecimen_ID %in% missing_ids) %>% 
    dplyr::select(Kids_First_Biospecimen_ID, 
                  Kids_First_Participant_ID,
                  experimental_strategy,
                  sample_type,
                  RNA_library, 
                  cohort)
  readr::write_tsv(missing_ids_df, file.path(results_dir, output_file))
  return(missing_ids_df)
}

Histologies file

  • Load histologies file
# read file
hist_df <- readr::read_tsv(file.path(data_dir, "histologies-base.tsv"), 
                           guess_max = 10000,
                           col_types = cols(.default = col_guess()))

Check OpenPedCan RNA-Seq biospecimen IDs

  • Expected counts matrix (gene-counts-rsem-expected_count-collapsed.rds)
# get OpenPedCan rnaseq biospecimen ids
hist_ids <- hist_df %>%
  filter(experimental_strategy == "RNA-Seq", cohort != "TCGA") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)

# check that all OpenPedCan RNA-Seq biospecimen IDs are in the expected count expression matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir,
                                        "gene-counts-rsem-expected_count-collapsed.rds")) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-gene-counts-rsem-expected_count-collapsed.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("RNA-Seq biospecimen in histolgies missing in gene-counts-rsem-expected_count-collapsed.rds = ", length(missing_ids)))
[1] "RNA-Seq biospecimen in histolgies missing in gene-counts-rsem-expected_count-collapsed.rds =  17382"
if (length(missing_hist_ids) > 0) {
  output_file <- "gene-counts-rsem-expected_count-collapsed-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA-Seq biospecimen in gene-counts-rsem-expected_count-collapsed.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA-Seq biospecimen in gene-counts-rsem-expected_count-collapsed.rds missing in histolgies =  0"
  • TPM matrix (gene-expression-rsem-tpm-collapsed.rds)
# check that all OpenPedCan RNA-Seq biospecimen IDs are in the tpm expression matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir,
                                        "gene-expression-rsem-tpm-collapsed.rds")) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-gene-expression-rsem-tpm-collapsed.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("RNA-Seq biospecimen in histolgies missing in gene-expression-rsem-tpm-collapsed.rds = ", length(missing_ids)))
[1] "RNA-Seq biospecimen in histolgies missing in gene-expression-rsem-tpm-collapsed.rds =  17382"
if (length(missing_hist_ids) > 0) {
  output_file <- "gene-expression-rsem-tpm-collapsed-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA-Seq biospecimen in gene-expression-rsem-tpm-collapsed.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA-Seq biospecimen in gene-expression-rsem-tpm-collapsed.rds missing in histolgies =  0"
  • Isoform TPM matrix (rna-isoform-expression-rsem-tpm.rds)
# exclude GTEx biospecimen when checking isoform matrix
isoform_hist_df <-  hist_df %>%
  filter(experimental_strategy == "RNA-Seq", !cohort %in% c("TCGA","GTEx"))
  
isoform_hist_ids <- isoform_hist_df %>% dplyr::pull(Kids_First_Biospecimen_ID)

# check that all OpenPedCan RNA-Seq biospecimen IDs are in the tpm expression matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir,
                                        "rna-isoform-expression-rsem-tpm.rds")) %>%
  dplyr::select(-c("transcript_id", "gene_symbol")) %>%
  colnames()
missing_ids <- setdiff(isoform_hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, isoform_hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-rna-isoform-expression-rsem-tpm.tsv"
  missing_ids_df <- missing_biospecimen_table(isoform_hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("RNA-Seq biospecimen in histolgies missing in rna-isoform-expression-rsem-tpm.rds = ", length(missing_ids)))
[1] "RNA-Seq biospecimen in histolgies missing in rna-isoform-expression-rsem-tpm.rds =  0"
if (length(missing_hist_ids) > 0) {
  output_file <- "rna-isoform-expression-rsem-tpm-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA-Seq biospecimen in rna-isoform-expression-rsem-tpm.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA-Seq biospecimen in rna-isoform-expression-rsem-tpm.rds missing in histolgies =  14"

Check TCGA RNA-Seq biospecimen IDs

  • TPM matrix (tcga-gene-expression-rsem-tpm-collapsed.rds)
# get tcga rnaseq biospecimen ids
hist_ids <- hist_df %>%
  filter(experimental_strategy == "RNA-Seq", cohort == "TCGA") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)

# check that all TCGA RNA-Seq biospecimen IDs are in the tpm expression matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir,
                                        "tcga-gene-expression-rsem-tpm-collapsed.rds")) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-tcga-gene-expression-rsem-tpm-collapsed.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("RNA-Seq biospecimen in histolgies missing in tcga-gene-expression-rsem-tpm-collapsed.rds = ", length(missing_ids)))
[1] "RNA-Seq biospecimen in histolgies missing in tcga-gene-expression-rsem-tpm-collapsed.rds =  3"
if (length(missing_hist_ids) > 0) {
  output_file <- "tcga-gene-expression-rsem-tpm-collapsed-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA-Seq biospecimen in tcga-gene-expression-rsem-tpm-collapsed.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA-Seq biospecimen in tcga-gene-expression-rsem-tpm-collapsed.rds missing in histolgies =  712"

Check gene symbols in gene expression matrices

  • RNA-Seq expression matrices
# OPC counts matrix
opc_counts <-
  tibble::tibble(OPC_COUNTS =
    readr::read_rds(file.path(data_dir, "gene-counts-rsem-expected_count-collapsed.rds")) %>%
      rownames() %>% unique()) %>%
  dplyr::mutate(gene_symbol = OPC_COUNTS)

# OPC tpm matrix
opc_tpm <-
  tibble::tibble(OPC_TPM =
    readr::read_rds(file.path(data_dir, "gene-expression-rsem-tpm-collapsed.rds")) %>%
      rownames() %>% unique()) %>%
  dplyr::mutate(gene_symbol = OPC_TPM)

# # TCGA counts matrix
# tcga-counts <-
#   tibble::tibble(TCGA_COUNTS =
#     readr::read_rds(file.path(data_dir, "tcga-gene-counts-rsem-expected_count-collapsed.rds")) %>%
#       rownames() %>% unique()) %>%
#   dplyr::mutate(gene_symbol = TCGA_COUNTS)

# TCGA tpm matrix
tcga_tpm <-
  tibble::tibble(TCGA_TPM =
    readr::read_rds(file.path(data_dir, "tcga-gene-expression-rsem-tpm-collapsed.rds")) %>%
      rownames() %>% unique()) %>%
  dplyr::mutate(gene_symbol = TCGA_TPM)

# merge and list differences
gene_symbol_diffs <- opc_counts %>%
  dplyr::full_join(opc_tpm, by = "gene_symbol") %>%
  dplyr::full_join(tcga_tpm, by = "gene_symbol") %>%
  dplyr::select(-gene_symbol) %>%
  dplyr::filter(is.na(OPC_COUNTS) | is.na(OPC_TPM) | is.na(TCGA_TPM)) %>%
  dplyr::distinct()

# check any differences in gene symbols among gene matrices
if (length(rownames(gene_symbol_diffs)) > 0) {
  output_file <- "genes_not_in_all_gene_expression_matrices.tsv"
  gene_symbol_diffs %>% readr::write_tsv(file.path(results_dir, output_file))
  gene_symbol_diffs
}
print(paste("Genes not matching all expression matrices =", length(rownames(gene_symbol_diffs))))
[1] "Genes not matching all expression matrices = 27245"

Check methylation matrices biospecimen IDs

  • Beta-values matrix (methyl-beta-values.rds)
# get beta-values methylation biospecimen ids
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "Methylation") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)

# check that all methylation biospecimen IDs are in the beta-values methylation matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir, "methyl-beta-values.rds")) %>%
  dplyr::select(-Probe_ID) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-methyl-beta-values.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("Methylation biospecimen in histolgies missing in methyl-beta-values.rds = ", length(missing_ids)))
[1] "Methylation biospecimen in histolgies missing in methyl-beta-values.rds =  717"
if (length(missing_hist_ids) > 0) {
  output_file <- "methyl-beta-values-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("Methylation biospecimen in methyl-beta-values.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "Methylation biospecimen in methyl-beta-values.rds missing in histolgies =  717"
  • M-values matrix (methyl-m-values.rds)
# check that all methylation biospecimen IDs are in the m-values methylation matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir, "methyl-m-values.rds")) %>%
  dplyr::select(-Probe_ID) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-methyl-m-values.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("Methylation biospecimen in histolgies missing in methyl-m-values.rds = ", length(missing_ids)))
[1] "Methylation biospecimen in histolgies missing in methyl-m-values.rds =  717"
if (length(missing_hist_ids) > 0) {
  output_file <- "methyl-m-values-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("Methylation biospecimen in methyl-m-values.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "Methylation biospecimen in methyl-m-values.rds missing in histolgies =  717"
  • CN-values matrix (methyl-m-values.rds)
# check that all methylation biospecimen IDs are in the m-values methylation matrix
biospecimen_ids <- readr::read_rds(file.path(data_dir, "methyl-cn-values.rds")) %>%
  dplyr::select(-Probe_ID) %>%
  colnames()
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-methyl-cn-values.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("Methylation biospecimen in histolgies missing in methyl-cn-values.rds = ", length(missing_ids)))
[1] "Methylation biospecimen in histolgies missing in methyl-cn-values.rds =  717"
if (length(missing_hist_ids) > 0) {
  output_file <- "methyl-cn-values-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("Methylation biospecimen in methyl-cn-values.rds missing in histolgies = ", length(missing_hist_ids)))
[1] "Methylation biospecimen in methyl-cn-values.rds missing in histolgies =  717"

Check methylation matrices probe IDs

  • Methylation matrices
# beta-values matrix
beta_values <-
  tibble::tibble(beta_values =
    readr::read_rds(file.path(data_dir, "methyl-beta-values.rds")) %>%
      dplyr::pull(Probe_ID) %>% unique()) %>%
  dplyr::mutate(probe_id = beta_values)

# m-values matrix
m_values <-
  tibble::tibble(m_values =
    readr::read_rds(file.path(data_dir, "methyl-m-values.rds")) %>%
      dplyr::pull(Probe_ID) %>% unique()) %>%
  dplyr::mutate(probe_id = m_values)

# cn-values matrix
cn_values <-
  tibble::tibble(cn_values =
    readr::read_rds(file.path(data_dir, "methyl-cn-values.rds")) %>%
      dplyr::pull(Probe_ID) %>% unique()) %>%
  dplyr::mutate(probe_id = cn_values)

# merge and list differences
probe_id_diffs <- beta_values %>%
  dplyr::full_join(m_values, by = "probe_id") %>%
  dplyr::full_join(cn_values, by = "probe_id") %>%
  dplyr::select(-probe_id) %>%
  dplyr::filter(is.na(beta_values) | is.na(m_values) | is.na(cn_values)) %>%
  dplyr::distinct()

# check any differences in probe IDs among methyl matrices
if (length(rownames(probe_id_diffs)) > 0) {
  output_file <- "probes_not_in_all_methyl_matrices.tsv"
  gene_symbol_diffs %>% readr::write_tsv(file.path(results_dir, output_file))
  gene_symbol_diffs
}
print(paste("Probes not matching all methylation matrices =", length(rownames(probe_id_diffs))))
[1] "Probes not matching all methylation matrices = 0"

Check DNA SNV, CNV and SV biospecimen IDs

  • CNVkit seg file (cnv-cnvkit.seg.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "cnv-cnvkit.seg.gz")) %>%
  dplyr::pull(ID) %>%
  unique()
Rows: 4297481 Columns: 7
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (2): ID, chrom
dbl (5): loc.start, loc.end, num.mark, seg.mean, copy.num

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS", "WXS"),
                !is.na(pathology_diagnosis)) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-cnv-cnvkit.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in cnv-cnvkit.seg.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in cnv-cnvkit.seg.gz =  293"
if (length(missing_hist_ids) > 0) {
  output_file <- "cnv-cnvkit.seg-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in cnv-cnvkit.seg.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in cnv-cnvkit.seg.gz missing in histolgies =  500"
  • Control-FREEC file (cnv-controlfreec.tsv.gz)
# check that all  biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "cnv-controlfreec.tsv.gz")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID) %>%
  unique()
Rows: 3123454 Columns: 11
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (4): Kids_First_Biospecimen_ID, chr, status, genotype
dbl (7): start, end, copy number, uncertainty, WilcoxonRankSumTestPvalue, Ko...

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS", "WXS"), 
                !is.na(pathology_diagnosis)) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-cnv-controlfreec.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in cnv-controlfreec.tsv.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in cnv-controlfreec.tsv.gz =  293"
if (length(missing_hist_ids) > 0) {
  output_file <- "cnv-controlfreec-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in cnv-controlfreec.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in cnv-controlfreec.tsv.gz missing in histolgies =  500"
  • GATK seg file (cnv-gatk.seg.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "cnv-gatk.seg.gz")) %>%
  dplyr::pull(BS_ID) %>%
  unique()
Rows: 1732889 Columns: 7
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (3): BS_ID, CONTIG, CALL
dbl (4): START, END, NUM_POINTS_COPY_RATIO, MEAN_LOG2_COPY_RATIO

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS"), 
                !is.na(pathology_diagnosis)) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-cnv-gatk.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in cnv-gatk.seg.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in cnv-gatk.seg.gz =  280"
if (length(missing_hist_ids) > 0) {
  output_file <- "cnv-gatk-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in cnv-gatk.seg.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in cnv-gatk.seg.gz missing in histolgies =  105"
  • SNV consensus MAF file (snv-consensus-plus-hotspots.maf.tsv.gz)
# check that all biospecimen IDs are in the file
snv_consensus_maf <- data.table::fread(file.path(data_dir,
                                                 "snv-consensus-plus-hotspots.maf.tsv.gz"),
                                       data.table = FALSE)
biospecimen_ids <- snv_consensus_maf %>% 
  dplyr::pull(Tumor_Sample_Barcode) %>%
  unique()
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS", "WXS", "Targeted Sequencing"),
                !is.na(pathology_diagnosis)) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-snv-consensus-plus-hotspots.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in snv-consensus-plus-hotspots.maf.tsv.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in snv-consensus-plus-hotspots.maf.tsv.gz =  1945"
if (length(missing_hist_ids) > 0) {
  output_file <- "snv-consensus-plus-hotspots-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in snv-consensus-plus-hotspots.maf.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in snv-consensus-plus-hotspots.maf.tsv.gz missing in histolgies =  0"
  • SNV DGD MAF file (snv-dgd.maf.tsv.gz)
# check that all biospecimen IDs are in the file
snv_dgd_maf <- data.table::fread(file.path(data_dir, "snv-dgd.maf.tsv.gz"), 
                                 data.table = FALSE)
biospecimen_ids <- snv_dgd_maf %>% 
  dplyr::pull(Tumor_Sample_Barcode) %>%
  unique()
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "Targeted Sequencing",
                is.na(RNA_library),
                !is.na(pathology_diagnosis), 
                cohort == "DGD") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-snv-dgd.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in snv-dgd.maf.tsv.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in snv-dgd.maf.tsv.gz =  0"
if (length(missing_hist_ids) > 0) {
  output_file <- "snv-dgd-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in snv-dgd.maf.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in snv-dgd.maf.tsv.gz missing in histolgies =  0"
  • Check column class differences between DGD and consensus SNV MAF
# consensus maf column class
snv_consensus_maf <- snv_consensus_maf %>% 
  dplyr::summarise_all(class) %>% 
  tidyr::pivot_longer(colnames(.), names_to = "variable", values_to = "consensus")

# dgd maf column class
snv_dgd_maf <- snv_dgd_maf %>% 
  dplyr::summarise_all(class) %>% 
  tidyr::pivot_longer(colnames(.), names_to = "variable", values_to = "DGD")

# diffs between DGD and consensus
maff_class_diffs <- snv_consensus_maf %>% 
  dplyr::full_join(snv_dgd_maf, by = "variable") %>% 
  filter(is.na(consensus) | is.na(DGD) | consensus != DGD)
maff_class_diffs
# write to file
output_file <- "snv-column-class-diffs-consensus-vs-dgd.tsv"
maff_class_diffs %>% readr::write_tsv(file.path(results_dir, output_file))
  • SV Manta file (sv-manta.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- data.table::fread(file.path(data_dir,
                                               "sv-manta.tsv.gz"),
                                     data.table = FALSE) %>%
  dplyr::pull(Kids.First.Biospecimen.ID.Tumor) %>%
  unique()
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS", "WXS"),
                !is.na(pathology_diagnosis)) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-sv-manta"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in sv-manta.tsv.gz = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in sv-manta.tsv.gz =  1631"
if (length(missing_hist_ids) > 0) {
  output_file <- "sv-manta-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in sv-manta.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in sv-manta.tsv.gz missing in histolgies =  20"
  • Biospecimen to bed file mapping (biospecimen_id_to_bed_map.tsv)
# check that all biospecimen IDs have associated with a bed file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "biospecimen_id_to_bed_map.tsv")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID) %>%
  unique()
Rows: 5654 Columns: 2
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (2): Kids_First_Biospecimen_ID, bed_to_use

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy %in% c("WGS", "WXS", "Targeted Sequencing"),
                !is.na(pathology_diagnosis),
                cohort != "DGD") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-biospecimen_id_to_bed_map.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("DNA biospecimen in histolgies missing in biospecimen_id_to_bed_map.tsv = ", length(missing_ids)))
[1] "DNA biospecimen in histolgies missing in biospecimen_id_to_bed_map.tsv =  18"
if (length(missing_hist_ids) > 0) {
  output_file <- "biospecimen_id_to_bed_map-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("DNA biospecimen in biospecimen_id_to_bed_map.tsv missing in histolgies = ", length(missing_hist_ids)))
[1] "DNA biospecimen in biospecimen_id_to_bed_map.tsv missing in histolgies =  1062"

Check RNA splice events and fusions biospecimen IDs

  • rMATS file (splice-events-rmats.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- data.table::fread(file.path(data_dir,
                                               "splice-events-rmats.tsv.gz"),
                                     data.table = FALSE) %>%
  dplyr::pull(sample_id) %>%
  unique()
Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection

Warning in writeBin(bfr, con = out, size = 1L): problem writing to connection
Avoidable 22.432 seconds. This file is very unusual: it ends abruptly without a final newline, and also its size is a multiple of 4096 bytes. Please properly end the last row with a newline using for example 'echo >> file' to avoid this  time to copy.
Warning in data.table::fread(file.path(data_dir, "splice-events-
rmats.tsv.gz"), : Discarded single-line footer: <<RI BS_J70GK8SM NA
ENSG00000004534.15 RB>>
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "RNA-Seq",
               !is.na(pathology_diagnosis),
               !cohort %in% c("TCGA", "GTEx")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_ids <- setdiff(hist_ids, biospecimen_ids)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_ids) > 0) {
  output_file <- "histologies-samples-missing-in-splice-events-rmats.tsv"
  missing_ids_df <- missing_biospecimen_table(hist_df, missing_ids, output_file)
  missing_ids_df
}
print(paste("RNA biospecimen in histolgies missing in splice-events-rmats.tsv.gz = ", length(missing_ids)))
[1] "RNA biospecimen in histolgies missing in splice-events-rmats.tsv.gz =  1379"
if (length(missing_hist_ids) > 0) {
  output_file <- "splice-events-rmats-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA biospecimen in splice-events-rmats.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA biospecimen in splice-events-rmats.tsv.gz missing in histolgies =  14"
  • AnnoFuse file (fusion-annoFuse.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "fusion-annoFuse.tsv.gz")) %>%
  dplyr::pull(Sample) %>%
  unique()
Rows: 232319 Columns: 22
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (18): Sample, FusionName, LeftBreakpoint, RightBreakpoint, Caller, Fusio...
dbl  (3): JunctionReadCount, SpanningFragCount, SpanningDelta
lgl  (1): reciprocal_exists

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "RNA-Seq", 
                !cohort %in% c("DGD", "TCGA", "GTEx")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_hist_ids) > 0) {
  output_file <- "fusion-annoFuse-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA biospecimen in fusion-annoFuse.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA biospecimen in fusion-annoFuse.tsv.gz missing in histolgies =  0"
  • Arriba fusion file (fusion-arriba.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "fusion-arriba.tsv.gz")) %>%
  dplyr::pull(tumor_id) %>%
  unique()
Rows: 282056 Columns: 33
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (28): gene1, gene2, strand1.gene.fusion., strand2.gene.fusion., breakpoi...
dbl  (5): split_reads1, split_reads2, discordant_mates, coverage1, coverage2

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "RNA-Seq", 
                !cohort %in% c("DGD", "TCGA", "GTEx")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_hist_ids) > 0) {
  output_file <- "fusion-annoFuse-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA biospecimen in fusion-arriba.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA biospecimen in fusion-arriba.tsv.gz missing in histolgies =  0"
  • STAR-Fusion file (fusion-starfusion.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "fusion-starfusion.tsv.gz")) %>%
  dplyr::pull(tumor_id) %>%
  unique()
Rows: 12694 Columns: 28
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (21): FusionName, SpliceType, LeftGene, LeftBreakpoint, RightGene, Right...
dbl  (7): JunctionReadCount, SpanningFragCount, est_J, est_S, FFPM, LeftBrea...

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "RNA-Seq", 
                !cohort %in% c("DGD", "TCGA", "GTEx")) %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_hist_ids) > 0) {
  output_file <- "fusion-starfusion-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA biospecimen in fusion-starfusion.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA biospecimen in fusion-starfusion.tsv.gz missing in histolgies =  0"
  • Fusion DGD file (fusion-dgd.tsv.gz)
# check that all biospecimen IDs are in the file
biospecimen_ids <- readr::read_tsv(file.path(data_dir, "fusion-dgd.tsv.gz")) %>%
  dplyr::pull(Sample) %>%
  unique()
Rows: 278 Columns: 17
-- Column specification ---------------------------------------------------------------------------------------------------------------------------------------------------
Delimiter: "\t"
chr (9): Sample, FusionName, Fusion_Type, Gene1A, Gene1B, annots, Gene1A_ann...
dbl (2): JunctionReadCount, SpanningFragCount
lgl (6): Gene2A, Gene2B, LeftBreakpoint, RightBreakpoint, Gene2A_anno, Gene2...

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hist_ids <- hist_df %>%
  dplyr::filter(experimental_strategy == "Targeted Sequencing", 
                !is.na(RNA_library),
                cohort == "DGD") %>%
  dplyr::pull(Kids_First_Biospecimen_ID)
missing_hist_ids <- setdiff(biospecimen_ids, hist_ids)
if (length(missing_hist_ids) > 0) {
  output_file <- "fusion-dgd-samples-missing-in-histologies.tsv"
  missing_hist_ids_df <- tibble::tibble(Kids_First_Biospecimen_ID = missing_hist_ids)
  missing_hist_ids_df %>% readr::write_tsv(file.path(results_dir, output_file))
  missing_hist_ids_df
}
print(paste("RNA biospecimen in fusion-dgd.tsv.gz missing in histolgies = ", length(missing_hist_ids)))
[1] "RNA biospecimen in fusion-dgd.tsv.gz missing in histolgies =  0"

Session Info

sessionInfo() 
R version 4.1.3 (2022-03-10)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: Ubuntu 16.04.6 LTS

Matrix products: default
BLAS/LAPACK: /home/ubuntu/volume/miniconda3/lib/libopenblasp-r0.3.20.so

locale:
 [1] LC_CTYPE=C                 LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] data.table_1.14.2 forcats_0.5.2     stringr_1.4.1     dplyr_1.0.10     
 [5] purrr_0.3.4       readr_2.1.2       tidyr_1.2.0       tibble_3.1.8     
 [9] ggplot2_3.3.6     tidyverse_1.3.2  

loaded via a namespace (and not attached):
 [1] lubridate_1.8.0     assertthat_0.2.1    rprojroot_2.0.3    
 [4] digest_0.6.29       utf8_1.2.2          R6_2.5.1           
 [7] cellranger_1.1.0    backports_1.4.1     reprex_2.0.2       
[10] evaluate_0.16       httr_1.4.4          pillar_1.8.1       
[13] rlang_1.0.5         googlesheets4_1.0.1 readxl_1.4.1       
[16] jquerylib_0.1.4     R.oo_1.25.0         R.utils_2.12.0     
[19] rmarkdown_2.16      googledrive_2.0.0   bit_4.0.4          
[22] munsell_0.5.0       broom_1.0.1         compiler_4.1.3     
[25] modelr_0.1.9        xfun_0.32           pkgconfig_2.0.3    
[28] htmltools_0.5.3     tidyselect_1.1.2    fansi_1.0.3        
[31] crayon_1.5.1        tzdb_0.3.0          dbplyr_2.2.1       
[34] withr_2.5.0         R.methodsS3_1.8.2   grid_4.1.3         
[37] jsonlite_1.8.0      gtable_0.3.1        lifecycle_1.0.1    
[40] DBI_1.1.3           magrittr_2.0.3      scales_1.2.1       
[43] cli_3.3.0           stringi_1.7.8       vroom_1.5.7        
[46] cachem_1.0.6        fs_1.5.2            xml2_1.3.3         
[49] bslib_0.4.0         ellipsis_0.3.2      generics_0.1.3     
[52] vctrs_0.4.1         tools_4.1.3         bit64_4.0.5        
[55] glue_1.6.2          hms_1.1.2           parallel_4.1.3     
[58] fastmap_1.1.0       yaml_2.3.5          colorspace_2.0-3   
[61] gargle_1.2.1        rvest_1.0.3         knitr_1.40         
[64] haven_2.5.1         sass_0.4.2         
LS0tCnRpdGxlOiAiRGF0YSBQcmUtcmVsZWFzZSBRQyIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIHRvY19kZXB0aDogNAphdXRob3I6IEVyaWMgV2FmdWxhIGZvciBQZWRpYXRyaWMgT3BlblRhcmdldHMKZGF0ZTogMDkvMDQvMjAyMgotLS0KClB1cnBvc2U6IENyZWF0ZSBhIHNldCBvZiBRQyByZXF1aXJlbWVudHMgZm9yIHByZS1yZWxlYXNlIGZpbGVzIHdoaWNoIHNob3VsZCBwYXNzIGJlZm9yZSBoYW5kIG9mZiBiZXR3ZWVuIEJJWFUgRW5naW5lZXJpbmcgdGVhbSB0byB0aGUgT3BlblBlZENhbiB0ZWFtLgoKCiMjIyMgVXNhZ2UKClRvIHJ1biB0aGlzIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgdXNlOgpgYGAKUnNjcmlwdCAtZSAicm1hcmtkb3duOjpyZW5kZXIoJ2RhdGEtcHJlLXJlbGVhc2UtcWMuUm1kJywgY2xlYW4gPSBUUlVFKSIKYGBgCl9UaGlzIGFzc3VtZXMgeW91IGFyZSBpbiB0aGUgbW9kdWxlcyBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnksIE9wZW5QZWRDYW4tYW5hbHlzaXMvYW5hbHlzZXMvZGF0YS1wcmUtcmVsZWFzZS1xYy5fCgojIyMjIFNldHVwCgotIExvYWQgbGlicmFyaWVzCmBgYHtyfQojIFIgYW5hbHlzaXMgcGFja2FnZXMKc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkodGlkeXZlcnNlKSkKc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkoZGF0YS50YWJsZSkpCgojIE1hZ3JpdHRyIHBpcGUKYCU+JWAgPC0gZHBseXI6OmAlPiVgCmBgYAoKLSBTZXQgdXAgZGlyZWN0b3JpZXMuIApgYGB7cn0KIyBkaXJlY3RvcmllcyBmb3IgaW5wdXQgYW5kIG91dHB1dCBmaWxlcwpyb290X2RpciA8LSBycHJvanJvb3Q6OmZpbmRfcm9vdChycHJvanJvb3Q6Omhhc19kaXIoIi5naXQiKSkKZGF0YV9kaXIgPC0gZmlsZS5wYXRoKHJvb3RfZGlyLCAiZGF0YSIpCmFuYWx5c2VzX2RpciA8LSBmaWxlLnBhdGgocm9vdF9kaXIsICJhbmFseXNlcyIpCnJlc3VsdHNfZGlyIDwtIGZpbGUucGF0aChhbmFseXNlc19kaXIsICJkYXRhLXByZS1yZWxlYXNlLXFjIiwgInJlc3VsdHMiKQoKIyBDcmVhdGUgcmVzdWx0cyBmb2xkZXIgaWYgaXQgZG9lc24ndCBleGlzdAppZiAoIWRpci5leGlzdHMocmVzdWx0c19kaXIpKSB7CiAgZGlyLmNyZWF0ZShyZXN1bHRzX2RpcikKfQpgYGAKCiMjIyMgRnVuY3Rpb25zCgotIE91dHB1dCB0YWJsZSBmdW5jdGlvbgpgYGB7cn0KbWlzc2luZ19iaW9zcGVjaW1lbl90YWJsZSA8LSBmdW5jdGlvbihoaXN0X2RmLCBtaXNzaW5nX2lkcywgb3V0cHV0X2ZpbGUpIHsKICBtaXNzaW5nX2lkc19kZiA8LSBoaXN0X2RmICU+JSAKICAgIGRwbHlyOjpmaWx0ZXIoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCAlaW4lIG1pc3NpbmdfaWRzKSAlPiUgCiAgICBkcGx5cjo6c2VsZWN0KEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQsIAogICAgICAgICAgICAgICAgICBLaWRzX0ZpcnN0X1BhcnRpY2lwYW50X0lELAogICAgICAgICAgICAgICAgICBleHBlcmltZW50YWxfc3RyYXRlZ3ksCiAgICAgICAgICAgICAgICAgIHNhbXBsZV90eXBlLAogICAgICAgICAgICAgICAgICBSTkFfbGlicmFyeSwgCiAgICAgICAgICAgICAgICAgIGNvaG9ydCkKICByZWFkcjo6d3JpdGVfdHN2KG1pc3NpbmdfaWRzX2RmLCBmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICByZXR1cm4obWlzc2luZ19pZHNfZGYpCn0KCmBgYAoKIyMjIyBIaXN0b2xvZ2llcyBmaWxlCgotIExvYWQgaGlzdG9sb2dpZXMgZmlsZQpgYGB7cn0KIyByZWFkIGZpbGUKaGlzdF9kZiA8LSByZWFkcjo6cmVhZF90c3YoZmlsZS5wYXRoKGRhdGFfZGlyLCAiaGlzdG9sb2dpZXMtYmFzZS50c3YiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzX21heCA9IDEwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2d1ZXNzKCkpKQpgYGAKCgoKIyMjIyBDaGVjayBPcGVuUGVkQ2FuIFJOQS1TZXEgYmlvc3BlY2ltZW4gSURzCgotIEV4cGVjdGVkIGNvdW50cyBtYXRyaXggKGdlbmUtY291bnRzLXJzZW0tZXhwZWN0ZWRfY291bnQtY29sbGFwc2VkLnJkcykKYGBge3J9CiMgZ2V0IE9wZW5QZWRDYW4gcm5hc2VxIGJpb3NwZWNpbWVuIGlkcwpoaXN0X2lkcyA8LSBoaXN0X2RmICU+JQogIGZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlJOQS1TZXEiLCBjb2hvcnQgIT0gIlRDR0EiKSAlPiUKICBkcGx5cjo6cHVsbChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEKQoKIyBjaGVjayB0aGF0IGFsbCBPcGVuUGVkQ2FuIFJOQS1TZXEgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZXhwZWN0ZWQgY291bnQgZXhwcmVzc2lvbiBtYXRyaXgKYmlvc3BlY2ltZW5faWRzIDwtIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQucmRzIikpICU+JQogIGNvbG5hbWVzKCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1nZW5lLWNvdW50cy1yc2VtLWV4cGVjdGVkX2NvdW50LWNvbGxhcHNlZC50c3YiCiAgbWlzc2luZ19pZHNfZGYgPC0gbWlzc2luZ19iaW9zcGVjaW1lbl90YWJsZShoaXN0X2RmLCBtaXNzaW5nX2lkcywgb3V0cHV0X2ZpbGUpCiAgbWlzc2luZ19pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BLVNlcSBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQucmRzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImdlbmUtY291bnRzLXJzZW0tZXhwZWN0ZWRfY291bnQtY29sbGFwc2VkLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BLVNlcSBiaW9zcGVjaW1lbiBpbiBnZW5lLWNvdW50cy1yc2VtLWV4cGVjdGVkX2NvdW50LWNvbGxhcHNlZC5yZHMgbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIFRQTSBtYXRyaXggKGdlbmUtZXhwcmVzc2lvbi1yc2VtLXRwbS1jb2xsYXBzZWQucmRzKQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCBPcGVuUGVkQ2FuIFJOQS1TZXEgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgdHBtIGV4cHJlc3Npb24gbWF0cml4CmJpb3NwZWNpbWVuX2lkcyA8LSByZWFkcjo6cmVhZF9yZHMoZmlsZS5wYXRoKGRhdGFfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdlbmUtZXhwcmVzc2lvbi1yc2VtLXRwbS1jb2xsYXBzZWQucmRzIikpICU+JQogIGNvbG5hbWVzKCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1nZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEtU2VxIGJpb3NwZWNpbWVuIGluIGhpc3RvbGdpZXMgbWlzc2luZyBpbiBnZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLnJkcyA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJnZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BLVNlcSBiaW9zcGVjaW1lbiBpbiBnZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLnJkcyBtaXNzaW5nIGluIGhpc3RvbGdpZXMgPSAiLCBsZW5ndGgobWlzc2luZ19oaXN0X2lkcykpKQpgYGAKCi0gSXNvZm9ybSBUUE0gbWF0cml4IChybmEtaXNvZm9ybS1leHByZXNzaW9uLXJzZW0tdHBtLnJkcykKYGBge3J9CiMgZXhjbHVkZSBHVEV4IGJpb3NwZWNpbWVuIHdoZW4gY2hlY2tpbmcgaXNvZm9ybSBtYXRyaXgKaXNvZm9ybV9oaXN0X2RmIDwtICBoaXN0X2RmICU+JQogIGZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlJOQS1TZXEiLCAhY29ob3J0ICVpbiUgYygiVENHQSIsIkdURXgiKSkKICAKaXNvZm9ybV9oaXN0X2lkcyA8LSBpc29mb3JtX2hpc3RfZGYgJT4lIGRwbHlyOjpwdWxsKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQpCgojIGNoZWNrIHRoYXQgYWxsIE9wZW5QZWRDYW4gUk5BLVNlcSBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSB0cG0gZXhwcmVzc2lvbiBtYXRyaXgKYmlvc3BlY2ltZW5faWRzIDwtIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm5hLWlzb2Zvcm0tZXhwcmVzc2lvbi1yc2VtLXRwbS5yZHMiKSkgJT4lCiAgZHBseXI6OnNlbGVjdCgtYygidHJhbnNjcmlwdF9pZCIsICJnZW5lX3N5bWJvbCIpKSAlPiUKICBjb2xuYW1lcygpCm1pc3NpbmdfaWRzIDwtIHNldGRpZmYoaXNvZm9ybV9oaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBpc29mb3JtX2hpc3RfaWRzKQppZiAobGVuZ3RoKG1pc3NpbmdfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiaGlzdG9sb2dpZXMtc2FtcGxlcy1taXNzaW5nLWluLXJuYS1pc29mb3JtLWV4cHJlc3Npb24tcnNlbS10cG0udHN2IgogIG1pc3NpbmdfaWRzX2RmIDwtIG1pc3NpbmdfYmlvc3BlY2ltZW5fdGFibGUoaXNvZm9ybV9oaXN0X2RmLCBtaXNzaW5nX2lkcywgb3V0cHV0X2ZpbGUpCiAgbWlzc2luZ19pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BLVNlcSBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gcm5hLWlzb2Zvcm0tZXhwcmVzc2lvbi1yc2VtLXRwbS5yZHMgPSAiLCBsZW5ndGgobWlzc2luZ19pZHMpKSkKaWYgKGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAicm5hLWlzb2Zvcm0tZXhwcmVzc2lvbi1yc2VtLXRwbS1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIlJOQS1TZXEgYmlvc3BlY2ltZW4gaW4gcm5hLWlzb2Zvcm0tZXhwcmVzc2lvbi1yc2VtLXRwbS5yZHMgbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgoKIyMjIyBDaGVjayBUQ0dBIFJOQS1TZXEgYmlvc3BlY2ltZW4gSURzCgo8IS0tIC0gRXhwZWN0ZWQgY291bnRzIG1hdHJpeCAodGNnYS1nZW5lLWNvdW50cy1yc2VtLWV4cGVjdGVkX2NvdW50LWNvbGxhcHNlZC5yZHMpIC0tPgo8IS0tIGBgYHtyfSAtLT4KPCEtLSAjIGNoZWNrIHRoYXQgYWxsIFRDR0EgUk5BLVNlcSBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSBleHBlY3RlZCBjb3VudCBleHByZXNzaW9uIG1hdHJpeCAtLT4KPCEtLSBiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgLS0+CjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0Y2dhLWdlbmUtY291bnRzLXJzZW0tZXhwZWN0ZWRfY291bnQtY29sbGFwc2VkLnJkcyIpIC0tPgo8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgJT4lIC0tPgo8IS0tICAgY29sbmFtZXMoKSAtLT4KPCEtLSBtaXNzaW5nX2lkcyA8LSBzZXRkaWZmKGhpc3RfaWRzLCBiaW9zcGVjaW1lbl9pZHMpIC0tPgo8IS0tIG1pc3NpbmdfaGlzdF9pZHMgPC0gc2V0ZGlmZihiaW9zcGVjaW1lbl9pZHMsIGhpc3RfaWRzKSAtLT4KPCEtLSBpZiAobGVuZ3RoKG1pc3NpbmdfaWRzKSA+IDApIHsgLS0+CjwhLS0gICBvdXRwdXRfZmlsZSA8LSAiaGlzdG9sb2dpZXMtc2FtcGxlcy1taXNzaW5nLWluLXRjZ2EtZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQudHN2IiAtLT4KPCEtLSAgIG1pc3NpbmdfaWRzX2RmIDwtIG1pc3NpbmdfYmlvc3BlY2ltZW5fdGFibGUoaGlzdF9kZiwgbWlzc2luZ19pZHMsIG91dHB1dF9maWxlKSAtLT4KPCEtLSAgIG1pc3NpbmdfaWRzX2RmIC0tPgo8IS0tIH0gLS0+CjwhLS0gcHJpbnQocGFzdGUoIlJOQS1TZXEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIHRjZ2EtZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQucmRzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpIC0tPgo8IS0tIGlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7IC0tPgo8IS0tICAgb3V0cHV0X2ZpbGUgPC0gInRjZ2EtZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIgLS0+CjwhLS0gICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKSAtLT4KPCEtLSAgIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpIC0tPgo8IS0tICAgbWlzc2luZ19oaXN0X2lkc19kZiAtLT4KPCEtLSB9IC0tPgo8IS0tIHByaW50KHBhc3RlKCJSTkEtU2VxIGJpb3NwZWNpbWVuIGluIHRjZ2EtZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQucmRzIG1pc3NpbmcgaW4gaGlzdG9sZ2llcyA9ICIsIGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSkpIC0tPgo8IS0tIGBgYCAtLT4KCi0gVFBNIG1hdHJpeCAodGNnYS1nZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLnJkcykKYGBge3J9CiMgZ2V0IHRjZ2Egcm5hc2VxIGJpb3NwZWNpbWVuIGlkcwpoaXN0X2lkcyA8LSBoaXN0X2RmICU+JQogIGZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlJOQS1TZXEiLCBjb2hvcnQgPT0gIlRDR0EiKSAlPiUKICBkcGx5cjo6cHVsbChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEKQoKIyBjaGVjayB0aGF0IGFsbCBUQ0dBIFJOQS1TZXEgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgdHBtIGV4cHJlc3Npb24gbWF0cml4CmJpb3NwZWNpbWVuX2lkcyA8LSByZWFkcjo6cmVhZF9yZHMoZmlsZS5wYXRoKGRhdGFfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRjZ2EtZ2VuZS1leHByZXNzaW9uLXJzZW0tdHBtLWNvbGxhcHNlZC5yZHMiKSkgJT4lCiAgY29sbmFtZXMoKQptaXNzaW5nX2lkcyA8LSBzZXRkaWZmKGhpc3RfaWRzLCBiaW9zcGVjaW1lbl9pZHMpCm1pc3NpbmdfaGlzdF9pZHMgPC0gc2V0ZGlmZihiaW9zcGVjaW1lbl9pZHMsIGhpc3RfaWRzKQppZiAobGVuZ3RoKG1pc3NpbmdfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiaGlzdG9sb2dpZXMtc2FtcGxlcy1taXNzaW5nLWluLXRjZ2EtZ2VuZS1leHByZXNzaW9uLXJzZW0tdHBtLWNvbGxhcHNlZC50c3YiCiAgbWlzc2luZ19pZHNfZGYgPC0gbWlzc2luZ19iaW9zcGVjaW1lbl90YWJsZShoaXN0X2RmLCBtaXNzaW5nX2lkcywgb3V0cHV0X2ZpbGUpCiAgbWlzc2luZ19pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BLVNlcSBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gdGNnYS1nZW5lLWV4cHJlc3Npb24tcnNlbS10cG0tY29sbGFwc2VkLnJkcyA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJ0Y2dhLWdlbmUtZXhwcmVzc2lvbi1yc2VtLXRwbS1jb2xsYXBzZWQtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEtU2VxIGJpb3NwZWNpbWVuIGluIHRjZ2EtZ2VuZS1leHByZXNzaW9uLXJzZW0tdHBtLWNvbGxhcHNlZC5yZHMgbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgojIyMjIENoZWNrIGdlbmUgc3ltYm9scyBpbiBnZW5lIGV4cHJlc3Npb24gbWF0cmljZXMKCi0gUk5BLVNlcSBleHByZXNzaW9uIG1hdHJpY2VzCmBgYHtyfQojIE9QQyBjb3VudHMgbWF0cml4Cm9wY19jb3VudHMgPC0KICB0aWJibGU6OnRpYmJsZShPUENfQ09VTlRTID0KICAgIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsICJnZW5lLWNvdW50cy1yc2VtLWV4cGVjdGVkX2NvdW50LWNvbGxhcHNlZC5yZHMiKSkgJT4lCiAgICAgIHJvd25hbWVzKCkgJT4lIHVuaXF1ZSgpKSAlPiUKICBkcGx5cjo6bXV0YXRlKGdlbmVfc3ltYm9sID0gT1BDX0NPVU5UUykKCiMgT1BDIHRwbSBtYXRyaXgKb3BjX3RwbSA8LQogIHRpYmJsZTo6dGliYmxlKE9QQ19UUE0gPQogICAgcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgImdlbmUtZXhwcmVzc2lvbi1yc2VtLXRwbS1jb2xsYXBzZWQucmRzIikpICU+JQogICAgICByb3duYW1lcygpICU+JSB1bmlxdWUoKSkgJT4lCiAgZHBseXI6Om11dGF0ZShnZW5lX3N5bWJvbCA9IE9QQ19UUE0pCgojICMgVENHQSBjb3VudHMgbWF0cml4CiMgdGNnYS1jb3VudHMgPC0KIyAgIHRpYmJsZTo6dGliYmxlKFRDR0FfQ09VTlRTID0KIyAgICAgcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgInRjZ2EtZ2VuZS1jb3VudHMtcnNlbS1leHBlY3RlZF9jb3VudC1jb2xsYXBzZWQucmRzIikpICU+JQojICAgICAgIHJvd25hbWVzKCkgJT4lIHVuaXF1ZSgpKSAlPiUKIyAgIGRwbHlyOjptdXRhdGUoZ2VuZV9zeW1ib2wgPSBUQ0dBX0NPVU5UUykKCiMgVENHQSB0cG0gbWF0cml4CnRjZ2FfdHBtIDwtCiAgdGliYmxlOjp0aWJibGUoVENHQV9UUE0gPQogICAgcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgInRjZ2EtZ2VuZS1leHByZXNzaW9uLXJzZW0tdHBtLWNvbGxhcHNlZC5yZHMiKSkgJT4lCiAgICAgIHJvd25hbWVzKCkgJT4lIHVuaXF1ZSgpKSAlPiUKICBkcGx5cjo6bXV0YXRlKGdlbmVfc3ltYm9sID0gVENHQV9UUE0pCgojIG1lcmdlIGFuZCBsaXN0IGRpZmZlcmVuY2VzCmdlbmVfc3ltYm9sX2RpZmZzIDwtIG9wY19jb3VudHMgJT4lCiAgZHBseXI6OmZ1bGxfam9pbihvcGNfdHBtLCBieSA9ICJnZW5lX3N5bWJvbCIpICU+JQogIGRwbHlyOjpmdWxsX2pvaW4odGNnYV90cG0sIGJ5ID0gImdlbmVfc3ltYm9sIikgJT4lCiAgZHBseXI6OnNlbGVjdCgtZ2VuZV9zeW1ib2wpICU+JQogIGRwbHlyOjpmaWx0ZXIoaXMubmEoT1BDX0NPVU5UUykgfCBpcy5uYShPUENfVFBNKSB8IGlzLm5hKFRDR0FfVFBNKSkgJT4lCiAgZHBseXI6OmRpc3RpbmN0KCkKCiMgY2hlY2sgYW55IGRpZmZlcmVuY2VzIGluIGdlbmUgc3ltYm9scyBhbW9uZyBnZW5lIG1hdHJpY2VzCmlmIChsZW5ndGgocm93bmFtZXMoZ2VuZV9zeW1ib2xfZGlmZnMpKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiZ2VuZXNfbm90X2luX2FsbF9nZW5lX2V4cHJlc3Npb25fbWF0cmljZXMudHN2IgogIGdlbmVfc3ltYm9sX2RpZmZzICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIGdlbmVfc3ltYm9sX2RpZmZzCn0KcHJpbnQocGFzdGUoIkdlbmVzIG5vdCBtYXRjaGluZyBhbGwgZXhwcmVzc2lvbiBtYXRyaWNlcyA9IiwgbGVuZ3RoKHJvd25hbWVzKGdlbmVfc3ltYm9sX2RpZmZzKSkpKQpgYGAKCgojIyMjIENoZWNrIG1ldGh5bGF0aW9uIG1hdHJpY2VzIGJpb3NwZWNpbWVuIElEcwoKLSBCZXRhLXZhbHVlcyBtYXRyaXggKG1ldGh5bC1iZXRhLXZhbHVlcy5yZHMpCmBgYHtyfQojIGdldCBiZXRhLXZhbHVlcyBtZXRoeWxhdGlvbiBiaW9zcGVjaW1lbiBpZHMKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSA9PSAiTWV0aHlsYXRpb24iKSAlPiUKICBkcGx5cjo6cHVsbChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEKQoKIyBjaGVjayB0aGF0IGFsbCBtZXRoeWxhdGlvbiBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSBiZXRhLXZhbHVlcyBtZXRoeWxhdGlvbiBtYXRyaXgKYmlvc3BlY2ltZW5faWRzIDwtIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsICJtZXRoeWwtYmV0YS12YWx1ZXMucmRzIikpICU+JQogIGRwbHlyOjpzZWxlY3QoLVByb2JlX0lEKSAlPiUKICBjb2xuYW1lcygpCm1pc3NpbmdfaWRzIDwtIHNldGRpZmYoaGlzdF9pZHMsIGJpb3NwZWNpbWVuX2lkcykKbWlzc2luZ19oaXN0X2lkcyA8LSBzZXRkaWZmKGJpb3NwZWNpbWVuX2lkcywgaGlzdF9pZHMpCmlmIChsZW5ndGgobWlzc2luZ19pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJoaXN0b2xvZ2llcy1zYW1wbGVzLW1pc3NpbmctaW4tbWV0aHlsLWJldGEtdmFsdWVzLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJNZXRoeWxhdGlvbiBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gbWV0aHlsLWJldGEtdmFsdWVzLnJkcyA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJtZXRoeWwtYmV0YS12YWx1ZXMtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJNZXRoeWxhdGlvbiBiaW9zcGVjaW1lbiBpbiBtZXRoeWwtYmV0YS12YWx1ZXMucmRzIG1pc3NpbmcgaW4gaGlzdG9sZ2llcyA9ICIsIGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSkpCmBgYAoKLSBNLXZhbHVlcyBtYXRyaXggKG1ldGh5bC1tLXZhbHVlcy5yZHMpCmBgYHtyfQojIGNoZWNrIHRoYXQgYWxsIG1ldGh5bGF0aW9uIGJpb3NwZWNpbWVuIElEcyBhcmUgaW4gdGhlIG0tdmFsdWVzIG1ldGh5bGF0aW9uIG1hdHJpeApiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgIm1ldGh5bC1tLXZhbHVlcy5yZHMiKSkgJT4lCiAgZHBseXI6OnNlbGVjdCgtUHJvYmVfSUQpICU+JQogIGNvbG5hbWVzKCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1tZXRoeWwtbS12YWx1ZXMudHN2IgogIG1pc3NpbmdfaWRzX2RmIDwtIG1pc3NpbmdfYmlvc3BlY2ltZW5fdGFibGUoaGlzdF9kZiwgbWlzc2luZ19pZHMsIG91dHB1dF9maWxlKQogIG1pc3NpbmdfaWRzX2RmCn0KcHJpbnQocGFzdGUoIk1ldGh5bGF0aW9uIGJpb3NwZWNpbWVuIGluIGhpc3RvbGdpZXMgbWlzc2luZyBpbiBtZXRoeWwtbS12YWx1ZXMucmRzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gIm1ldGh5bC1tLXZhbHVlcy1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIk1ldGh5bGF0aW9uIGJpb3NwZWNpbWVuIGluIG1ldGh5bC1tLXZhbHVlcy5yZHMgbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIENOLXZhbHVlcyBtYXRyaXggKG1ldGh5bC1tLXZhbHVlcy5yZHMpCmBgYHtyfQojIGNoZWNrIHRoYXQgYWxsIG1ldGh5bGF0aW9uIGJpb3NwZWNpbWVuIElEcyBhcmUgaW4gdGhlIG0tdmFsdWVzIG1ldGh5bGF0aW9uIG1hdHJpeApiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfcmRzKGZpbGUucGF0aChkYXRhX2RpciwgIm1ldGh5bC1jbi12YWx1ZXMucmRzIikpICU+JQogIGRwbHlyOjpzZWxlY3QoLVByb2JlX0lEKSAlPiUKICBjb2xuYW1lcygpCm1pc3NpbmdfaWRzIDwtIHNldGRpZmYoaGlzdF9pZHMsIGJpb3NwZWNpbWVuX2lkcykKbWlzc2luZ19oaXN0X2lkcyA8LSBzZXRkaWZmKGJpb3NwZWNpbWVuX2lkcywgaGlzdF9pZHMpCmlmIChsZW5ndGgobWlzc2luZ19pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJoaXN0b2xvZ2llcy1zYW1wbGVzLW1pc3NpbmctaW4tbWV0aHlsLWNuLXZhbHVlcy50c3YiCiAgbWlzc2luZ19pZHNfZGYgPC0gbWlzc2luZ19iaW9zcGVjaW1lbl90YWJsZShoaXN0X2RmLCBtaXNzaW5nX2lkcywgb3V0cHV0X2ZpbGUpCiAgbWlzc2luZ19pZHNfZGYKfQpwcmludChwYXN0ZSgiTWV0aHlsYXRpb24gYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIG1ldGh5bC1jbi12YWx1ZXMucmRzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gIm1ldGh5bC1jbi12YWx1ZXMtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJNZXRoeWxhdGlvbiBiaW9zcGVjaW1lbiBpbiBtZXRoeWwtY24tdmFsdWVzLnJkcyBtaXNzaW5nIGluIGhpc3RvbGdpZXMgPSAiLCBsZW5ndGgobWlzc2luZ19oaXN0X2lkcykpKQpgYGAKCiMjIyMgQ2hlY2sgbWV0aHlsYXRpb24gbWF0cmljZXMgcHJvYmUgSURzCgotIE1ldGh5bGF0aW9uIG1hdHJpY2VzCmBgYHtyfQojIGJldGEtdmFsdWVzIG1hdHJpeApiZXRhX3ZhbHVlcyA8LQogIHRpYmJsZTo6dGliYmxlKGJldGFfdmFsdWVzID0KICAgIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsICJtZXRoeWwtYmV0YS12YWx1ZXMucmRzIikpICU+JQogICAgICBkcGx5cjo6cHVsbChQcm9iZV9JRCkgJT4lIHVuaXF1ZSgpKSAlPiUKICBkcGx5cjo6bXV0YXRlKHByb2JlX2lkID0gYmV0YV92YWx1ZXMpCgojIG0tdmFsdWVzIG1hdHJpeAptX3ZhbHVlcyA8LQogIHRpYmJsZTo6dGliYmxlKG1fdmFsdWVzID0KICAgIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsICJtZXRoeWwtbS12YWx1ZXMucmRzIikpICU+JQogICAgICBkcGx5cjo6cHVsbChQcm9iZV9JRCkgJT4lIHVuaXF1ZSgpKSAlPiUKICBkcGx5cjo6bXV0YXRlKHByb2JlX2lkID0gbV92YWx1ZXMpCgojIGNuLXZhbHVlcyBtYXRyaXgKY25fdmFsdWVzIDwtCiAgdGliYmxlOjp0aWJibGUoY25fdmFsdWVzID0KICAgIHJlYWRyOjpyZWFkX3JkcyhmaWxlLnBhdGgoZGF0YV9kaXIsICJtZXRoeWwtY24tdmFsdWVzLnJkcyIpKSAlPiUKICAgICAgZHBseXI6OnB1bGwoUHJvYmVfSUQpICU+JSB1bmlxdWUoKSkgJT4lCiAgZHBseXI6Om11dGF0ZShwcm9iZV9pZCA9IGNuX3ZhbHVlcykKCiMgbWVyZ2UgYW5kIGxpc3QgZGlmZmVyZW5jZXMKcHJvYmVfaWRfZGlmZnMgPC0gYmV0YV92YWx1ZXMgJT4lCiAgZHBseXI6OmZ1bGxfam9pbihtX3ZhbHVlcywgYnkgPSAicHJvYmVfaWQiKSAlPiUKICBkcGx5cjo6ZnVsbF9qb2luKGNuX3ZhbHVlcywgYnkgPSAicHJvYmVfaWQiKSAlPiUKICBkcGx5cjo6c2VsZWN0KC1wcm9iZV9pZCkgJT4lCiAgZHBseXI6OmZpbHRlcihpcy5uYShiZXRhX3ZhbHVlcykgfCBpcy5uYShtX3ZhbHVlcykgfCBpcy5uYShjbl92YWx1ZXMpKSAlPiUKICBkcGx5cjo6ZGlzdGluY3QoKQoKIyBjaGVjayBhbnkgZGlmZmVyZW5jZXMgaW4gcHJvYmUgSURzIGFtb25nIG1ldGh5bCBtYXRyaWNlcwppZiAobGVuZ3RoKHJvd25hbWVzKHByb2JlX2lkX2RpZmZzKSkgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gInByb2Jlc19ub3RfaW5fYWxsX21ldGh5bF9tYXRyaWNlcy50c3YiCiAgZ2VuZV9zeW1ib2xfZGlmZnMgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgZ2VuZV9zeW1ib2xfZGlmZnMKfQpwcmludChwYXN0ZSgiUHJvYmVzIG5vdCBtYXRjaGluZyBhbGwgbWV0aHlsYXRpb24gbWF0cmljZXMgPSIsIGxlbmd0aChyb3duYW1lcyhwcm9iZV9pZF9kaWZmcykpKSkKYGBgCgojIyMjIENoZWNrIEROQSBTTlYsIENOViBhbmQgU1YgYmlvc3BlY2ltZW4gSURzCgotIENOVmtpdCBzZWcgZmlsZSAoY252LWNudmtpdC5zZWcuZ3opCmBgYHtyfQojIGNoZWNrIHRoYXQgYWxsIGJpb3NwZWNpbWVuIElEcyBhcmUgaW4gdGhlIGZpbGUKYmlvc3BlY2ltZW5faWRzIDwtIHJlYWRyOjpyZWFkX3RzdihmaWxlLnBhdGgoZGF0YV9kaXIsICJjbnYtY252a2l0LnNlZy5neiIpKSAlPiUKICBkcGx5cjo6cHVsbChJRCkgJT4lCiAgdW5pcXVlKCkKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSAlaW4lIGMoIldHUyIsICJXWFMiKSwKICAgICAgICAgICAgICAgICFpcy5uYShwYXRob2xvZ3lfZGlhZ25vc2lzKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1jbnYtY252a2l0LnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIGNudi1jbnZraXQuc2VnLmd6ID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImNudi1jbnZraXQuc2VnLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiRE5BIGJpb3NwZWNpbWVuIGluIGNudi1jbnZraXQuc2VnLmd6IG1pc3NpbmcgaW4gaGlzdG9sZ2llcyA9ICIsIGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSkpCmBgYAoKLSBDb250cm9sLUZSRUVDIGZpbGUgKGNudi1jb250cm9sZnJlZWMudHN2Lmd6KQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCAgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfdHN2KGZpbGUucGF0aChkYXRhX2RpciwgImNudi1jb250cm9sZnJlZWMudHN2Lmd6IikpICU+JQogIGRwbHlyOjpwdWxsKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgJWluJSBjKCJXR1MiLCAiV1hTIiksIAogICAgICAgICAgICAgICAgIWlzLm5hKHBhdGhvbG9neV9kaWFnbm9zaXMpKSAlPiUKICBkcGx5cjo6cHVsbChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEKQptaXNzaW5nX2lkcyA8LSBzZXRkaWZmKGhpc3RfaWRzLCBiaW9zcGVjaW1lbl9pZHMpCm1pc3NpbmdfaGlzdF9pZHMgPC0gc2V0ZGlmZihiaW9zcGVjaW1lbl9pZHMsIGhpc3RfaWRzKQppZiAobGVuZ3RoKG1pc3NpbmdfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiaGlzdG9sb2dpZXMtc2FtcGxlcy1taXNzaW5nLWluLWNudi1jb250cm9sZnJlZWMudHN2IgogIG1pc3NpbmdfaWRzX2RmIDwtIG1pc3NpbmdfYmlvc3BlY2ltZW5fdGFibGUoaGlzdF9kZiwgbWlzc2luZ19pZHMsIG91dHB1dF9maWxlKQogIG1pc3NpbmdfaWRzX2RmCn0KcHJpbnQocGFzdGUoIkROQSBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gY252LWNvbnRyb2xmcmVlYy50c3YuZ3ogPSAiLCBsZW5ndGgobWlzc2luZ19pZHMpKSkKaWYgKGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiY252LWNvbnRyb2xmcmVlYy1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIkROQSBiaW9zcGVjaW1lbiBpbiBjbnYtY29udHJvbGZyZWVjLnRzdi5neiBtaXNzaW5nIGluIGhpc3RvbGdpZXMgPSAiLCBsZW5ndGgobWlzc2luZ19oaXN0X2lkcykpKQpgYGAKCi0gR0FUSyBzZWcgZmlsZSAoY252LWdhdGsuc2VnLmd6KQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSBmaWxlCmJpb3NwZWNpbWVuX2lkcyA8LSByZWFkcjo6cmVhZF90c3YoZmlsZS5wYXRoKGRhdGFfZGlyLCAiY252LWdhdGsuc2VnLmd6IikpICU+JQogIGRwbHlyOjpwdWxsKEJTX0lEKSAlPiUKICB1bmlxdWUoKQpoaXN0X2lkcyA8LSBoaXN0X2RmICU+JQogIGRwbHlyOjpmaWx0ZXIoZXhwZXJpbWVudGFsX3N0cmF0ZWd5ICVpbiUgYygiV0dTIiksIAogICAgICAgICAgICAgICAgIWlzLm5hKHBhdGhvbG9neV9kaWFnbm9zaXMpKSAlPiUKICBkcGx5cjo6cHVsbChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEKQptaXNzaW5nX2lkcyA8LSBzZXRkaWZmKGhpc3RfaWRzLCBiaW9zcGVjaW1lbl9pZHMpCm1pc3NpbmdfaGlzdF9pZHMgPC0gc2V0ZGlmZihiaW9zcGVjaW1lbl9pZHMsIGhpc3RfaWRzKQppZiAobGVuZ3RoKG1pc3NpbmdfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAiaGlzdG9sb2dpZXMtc2FtcGxlcy1taXNzaW5nLWluLWNudi1nYXRrLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIGNudi1nYXRrLnNlZy5neiA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJjbnYtZ2F0ay1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIkROQSBiaW9zcGVjaW1lbiBpbiBjbnYtZ2F0ay5zZWcuZ3ogbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIFNOViBjb25zZW5zdXMgTUFGIGZpbGUgKHNudi1jb25zZW5zdXMtcGx1cy1ob3RzcG90cy5tYWYudHN2Lmd6KQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSBmaWxlCnNudl9jb25zZW5zdXNfbWFmIDwtIGRhdGEudGFibGU6OmZyZWFkKGZpbGUucGF0aChkYXRhX2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzbnYtY29uc2Vuc3VzLXBsdXMtaG90c3BvdHMubWFmLnRzdi5neiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRhYmxlID0gRkFMU0UpCmJpb3NwZWNpbWVuX2lkcyA8LSBzbnZfY29uc2Vuc3VzX21hZiAlPiUgCiAgZHBseXI6OnB1bGwoVHVtb3JfU2FtcGxlX0JhcmNvZGUpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgJWluJSBjKCJXR1MiLCAiV1hTIiwgIlRhcmdldGVkIFNlcXVlbmNpbmciKSwKICAgICAgICAgICAgICAgICFpcy5uYShwYXRob2xvZ3lfZGlhZ25vc2lzKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1zbnYtY29uc2Vuc3VzLXBsdXMtaG90c3BvdHMudHN2IgogIG1pc3NpbmdfaWRzX2RmIDwtIG1pc3NpbmdfYmlvc3BlY2ltZW5fdGFibGUoaGlzdF9kZiwgbWlzc2luZ19pZHMsIG91dHB1dF9maWxlKQogIG1pc3NpbmdfaWRzX2RmCn0KcHJpbnQocGFzdGUoIkROQSBiaW9zcGVjaW1lbiBpbiBoaXN0b2xnaWVzIG1pc3NpbmcgaW4gc252LWNvbnNlbnN1cy1wbHVzLWhvdHNwb3RzLm1hZi50c3YuZ3ogPSAiLCBsZW5ndGgobWlzc2luZ19pZHMpKSkKaWYgKGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSA+IDApIHsKICBvdXRwdXRfZmlsZSA8LSAic252LWNvbnNlbnN1cy1wbHVzLWhvdHNwb3RzLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiRE5BIGJpb3NwZWNpbWVuIGluIHNudi1jb25zZW5zdXMtcGx1cy1ob3RzcG90cy5tYWYudHN2Lmd6IG1pc3NpbmcgaW4gaGlzdG9sZ2llcyA9ICIsIGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSkpCmBgYAoKLSBTTlYgREdEIE1BRiBmaWxlIChzbnYtZGdkLm1hZi50c3YuZ3opCmBgYHtyfQojIGNoZWNrIHRoYXQgYWxsIGJpb3NwZWNpbWVuIElEcyBhcmUgaW4gdGhlIGZpbGUKc252X2RnZF9tYWYgPC0gZGF0YS50YWJsZTo6ZnJlYWQoZmlsZS5wYXRoKGRhdGFfZGlyLCAic252LWRnZC5tYWYudHN2Lmd6IiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRhYmxlID0gRkFMU0UpCmJpb3NwZWNpbWVuX2lkcyA8LSBzbnZfZGdkX21hZiAlPiUgCiAgZHBseXI6OnB1bGwoVHVtb3JfU2FtcGxlX0JhcmNvZGUpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlRhcmdldGVkIFNlcXVlbmNpbmciLAogICAgICAgICAgICAgICAgaXMubmEoUk5BX2xpYnJhcnkpLAogICAgICAgICAgICAgICAgIWlzLm5hKHBhdGhvbG9neV9kaWFnbm9zaXMpLCAKICAgICAgICAgICAgICAgIGNvaG9ydCA9PSAiREdEIikgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1zbnYtZGdkLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIHNudi1kZ2QubWFmLnRzdi5neiA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJzbnYtZGdkLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiRE5BIGJpb3NwZWNpbWVuIGluIHNudi1kZ2QubWFmLnRzdi5neiBtaXNzaW5nIGluIGhpc3RvbGdpZXMgPSAiLCBsZW5ndGgobWlzc2luZ19oaXN0X2lkcykpKQpgYGAKCi0gQ2hlY2sgY29sdW1uIGNsYXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gREdEIGFuZCBjb25zZW5zdXMgU05WIE1BRgpgYGB7cn0KIyBjb25zZW5zdXMgbWFmIGNvbHVtbiBjbGFzcwpzbnZfY29uc2Vuc3VzX21hZiA8LSBzbnZfY29uc2Vuc3VzX21hZiAlPiUgCiAgZHBseXI6OnN1bW1hcmlzZV9hbGwoY2xhc3MpICU+JSAKICB0aWR5cjo6cGl2b3RfbG9uZ2VyKGNvbG5hbWVzKC4pLCBuYW1lc190byA9ICJ2YXJpYWJsZSIsIHZhbHVlc190byA9ICJjb25zZW5zdXMiKQoKIyBkZ2QgbWFmIGNvbHVtbiBjbGFzcwpzbnZfZGdkX21hZiA8LSBzbnZfZGdkX21hZiAlPiUgCiAgZHBseXI6OnN1bW1hcmlzZV9hbGwoY2xhc3MpICU+JSAKICB0aWR5cjo6cGl2b3RfbG9uZ2VyKGNvbG5hbWVzKC4pLCBuYW1lc190byA9ICJ2YXJpYWJsZSIsIHZhbHVlc190byA9ICJER0QiKQoKIyBkaWZmcyBiZXR3ZWVuIERHRCBhbmQgY29uc2Vuc3VzCm1hZmZfY2xhc3NfZGlmZnMgPC0gc252X2NvbnNlbnN1c19tYWYgJT4lIAogIGRwbHlyOjpmdWxsX2pvaW4oc252X2RnZF9tYWYsIGJ5ID0gInZhcmlhYmxlIikgJT4lIAogIGZpbHRlcihpcy5uYShjb25zZW5zdXMpIHwgaXMubmEoREdEKSB8IGNvbnNlbnN1cyAhPSBER0QpCm1hZmZfY2xhc3NfZGlmZnMKCiMgd3JpdGUgdG8gZmlsZQpvdXRwdXRfZmlsZSA8LSAic252LWNvbHVtbi1jbGFzcy1kaWZmcy1jb25zZW5zdXMtdnMtZGdkLnRzdiIKbWFmZl9jbGFzc19kaWZmcyAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKYGBgCgotIFNWIE1hbnRhIGZpbGUgKHN2LW1hbnRhLnRzdi5neikKYGBge3J9CiMgY2hlY2sgdGhhdCBhbGwgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gZGF0YS50YWJsZTo6ZnJlYWQoZmlsZS5wYXRoKGRhdGFfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdi1tYW50YS50c3YuZ3oiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudGFibGUgPSBGQUxTRSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkcy5GaXJzdC5CaW9zcGVjaW1lbi5JRC5UdW1vcikgJT4lCiAgdW5pcXVlKCkKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSAlaW4lIGMoIldHUyIsICJXWFMiKSwKICAgICAgICAgICAgICAgICFpcy5uYShwYXRob2xvZ3lfZGlhZ25vc2lzKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1zdi1tYW50YSIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIHN2LW1hbnRhLnRzdi5neiA9ICIsIGxlbmd0aChtaXNzaW5nX2lkcykpKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJzdi1tYW50YS1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIkROQSBiaW9zcGVjaW1lbiBpbiBzdi1tYW50YS50c3YuZ3ogbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIEJpb3NwZWNpbWVuIHRvIGJlZCBmaWxlIG1hcHBpbmcgKGJpb3NwZWNpbWVuX2lkX3RvX2JlZF9tYXAudHN2KQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCBiaW9zcGVjaW1lbiBJRHMgaGF2ZSBhc3NvY2lhdGVkIHdpdGggYSBiZWQgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfdHN2KGZpbGUucGF0aChkYXRhX2RpciwgImJpb3NwZWNpbWVuX2lkX3RvX2JlZF9tYXAudHN2IikpICU+JQogIGRwbHlyOjpwdWxsKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgJWluJSBjKCJXR1MiLCAiV1hTIiwgIlRhcmdldGVkIFNlcXVlbmNpbmciKSwKICAgICAgICAgICAgICAgICFpcy5uYShwYXRob2xvZ3lfZGlhZ25vc2lzKSwKICAgICAgICAgICAgICAgIGNvaG9ydCAhPSAiREdEIikgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1iaW9zcGVjaW1lbl9pZF90b19iZWRfbWFwLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIGJpb3NwZWNpbWVuX2lkX3RvX2JlZF9tYXAudHN2ID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImJpb3NwZWNpbWVuX2lkX3RvX2JlZF9tYXAtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJETkEgYmlvc3BlY2ltZW4gaW4gYmlvc3BlY2ltZW5faWRfdG9fYmVkX21hcC50c3YgbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgojIyMjIENoZWNrIFJOQSBzcGxpY2UgZXZlbnRzIGFuZCBmdXNpb25zIGJpb3NwZWNpbWVuIElEcwoKLSByTUFUUyBmaWxlIChzcGxpY2UtZXZlbnRzLXJtYXRzLnRzdi5neikKYGBge3J9CiMgY2hlY2sgdGhhdCBhbGwgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gZGF0YS50YWJsZTo6ZnJlYWQoZmlsZS5wYXRoKGRhdGFfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGxpY2UtZXZlbnRzLXJtYXRzLnRzdi5neiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS50YWJsZSA9IEZBTFNFKSAlPiUKICBkcGx5cjo6cHVsbChzYW1wbGVfaWQpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlJOQS1TZXEiLAogICAgICAgICAgICAgICAhaXMubmEocGF0aG9sb2d5X2RpYWdub3NpcyksCiAgICAgICAgICAgICAgICFjb2hvcnQgJWluJSBjKCJUQ0dBIiwgIkdURXgiKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19pZHMgPC0gc2V0ZGlmZihoaXN0X2lkcywgYmlvc3BlY2ltZW5faWRzKQptaXNzaW5nX2hpc3RfaWRzIDwtIHNldGRpZmYoYmlvc3BlY2ltZW5faWRzLCBoaXN0X2lkcykKaWYgKGxlbmd0aChtaXNzaW5nX2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImhpc3RvbG9naWVzLXNhbXBsZXMtbWlzc2luZy1pbi1zcGxpY2UtZXZlbnRzLXJtYXRzLnRzdiIKICBtaXNzaW5nX2lkc19kZiA8LSBtaXNzaW5nX2Jpb3NwZWNpbWVuX3RhYmxlKGhpc3RfZGYsIG1pc3NpbmdfaWRzLCBvdXRwdXRfZmlsZSkKICBtaXNzaW5nX2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEgYmlvc3BlY2ltZW4gaW4gaGlzdG9sZ2llcyBtaXNzaW5nIGluIHNwbGljZS1ldmVudHMtcm1hdHMudHN2Lmd6ID0gIiwgbGVuZ3RoKG1pc3NpbmdfaWRzKSkpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gInNwbGljZS1ldmVudHMtcm1hdHMtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEgYmlvc3BlY2ltZW4gaW4gc3BsaWNlLWV2ZW50cy1ybWF0cy50c3YuZ3ogbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIEFubm9GdXNlIGZpbGUgKGZ1c2lvbi1hbm5vRnVzZS50c3YuZ3opCmBgYHtyfQojIGNoZWNrIHRoYXQgYWxsIGJpb3NwZWNpbWVuIElEcyBhcmUgaW4gdGhlIGZpbGUKYmlvc3BlY2ltZW5faWRzIDwtIHJlYWRyOjpyZWFkX3RzdihmaWxlLnBhdGgoZGF0YV9kaXIsICJmdXNpb24tYW5ub0Z1c2UudHN2Lmd6IikpICU+JQogIGRwbHlyOjpwdWxsKFNhbXBsZSkgJT4lCiAgdW5pcXVlKCkKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSA9PSAiUk5BLVNlcSIsIAogICAgICAgICAgICAgICAgIWNvaG9ydCAlaW4lIGMoIkRHRCIsICJUQ0dBIiwgIkdURXgiKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19oaXN0X2lkcyA8LSBzZXRkaWZmKGJpb3NwZWNpbWVuX2lkcywgaGlzdF9pZHMpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImZ1c2lvbi1hbm5vRnVzZS1zYW1wbGVzLW1pc3NpbmctaW4taGlzdG9sb2dpZXMudHN2IgogIG1pc3NpbmdfaGlzdF9pZHNfZGYgPC0gdGliYmxlOjp0aWJibGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCA9IG1pc3NpbmdfaGlzdF9pZHMpCiAgbWlzc2luZ19oaXN0X2lkc19kZiAlPiUgcmVhZHI6OndyaXRlX3RzdihmaWxlLnBhdGgocmVzdWx0c19kaXIsIG91dHB1dF9maWxlKSkKICBtaXNzaW5nX2hpc3RfaWRzX2RmCn0KcHJpbnQocGFzdGUoIlJOQSBiaW9zcGVjaW1lbiBpbiBmdXNpb24tYW5ub0Z1c2UudHN2Lmd6IG1pc3NpbmcgaW4gaGlzdG9sZ2llcyA9ICIsIGxlbmd0aChtaXNzaW5nX2hpc3RfaWRzKSkpCmBgYAoKLSBBcnJpYmEgZnVzaW9uIGZpbGUgKGZ1c2lvbi1hcnJpYmEudHN2Lmd6KQpgYGB7cn0KIyBjaGVjayB0aGF0IGFsbCBiaW9zcGVjaW1lbiBJRHMgYXJlIGluIHRoZSBmaWxlCmJpb3NwZWNpbWVuX2lkcyA8LSByZWFkcjo6cmVhZF90c3YoZmlsZS5wYXRoKGRhdGFfZGlyLCAiZnVzaW9uLWFycmliYS50c3YuZ3oiKSkgJT4lCiAgZHBseXI6OnB1bGwodHVtb3JfaWQpICU+JQogIHVuaXF1ZSgpCmhpc3RfaWRzIDwtIGhpc3RfZGYgJT4lCiAgZHBseXI6OmZpbHRlcihleHBlcmltZW50YWxfc3RyYXRlZ3kgPT0gIlJOQS1TZXEiLCAKICAgICAgICAgICAgICAgICFjb2hvcnQgJWluJSBjKCJER0QiLCAiVENHQSIsICJHVEV4IikpICU+JQogIGRwbHlyOjpwdWxsKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQpCm1pc3NpbmdfaGlzdF9pZHMgPC0gc2V0ZGlmZihiaW9zcGVjaW1lbl9pZHMsIGhpc3RfaWRzKQppZiAobGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpID4gMCkgewogIG91dHB1dF9maWxlIDwtICJmdXNpb24tYW5ub0Z1c2Utc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEgYmlvc3BlY2ltZW4gaW4gZnVzaW9uLWFycmliYS50c3YuZ3ogbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgotIFNUQVItRnVzaW9uIGZpbGUgKGZ1c2lvbi1zdGFyZnVzaW9uLnRzdi5neikKYGBge3J9CiMgY2hlY2sgdGhhdCBhbGwgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfdHN2KGZpbGUucGF0aChkYXRhX2RpciwgImZ1c2lvbi1zdGFyZnVzaW9uLnRzdi5neiIpKSAlPiUKICBkcGx5cjo6cHVsbCh0dW1vcl9pZCkgJT4lCiAgdW5pcXVlKCkKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSA9PSAiUk5BLVNlcSIsIAogICAgICAgICAgICAgICAgIWNvaG9ydCAlaW4lIGMoIkRHRCIsICJUQ0dBIiwgIkdURXgiKSkgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19oaXN0X2lkcyA8LSBzZXRkaWZmKGJpb3NwZWNpbWVuX2lkcywgaGlzdF9pZHMpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImZ1c2lvbi1zdGFyZnVzaW9uLXNhbXBsZXMtbWlzc2luZy1pbi1oaXN0b2xvZ2llcy50c3YiCiAgbWlzc2luZ19oaXN0X2lkc19kZiA8LSB0aWJibGU6OnRpYmJsZShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEID0gbWlzc2luZ19oaXN0X2lkcykKICBtaXNzaW5nX2hpc3RfaWRzX2RmICU+JSByZWFkcjo6d3JpdGVfdHN2KGZpbGUucGF0aChyZXN1bHRzX2Rpciwgb3V0cHV0X2ZpbGUpKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYKfQpwcmludChwYXN0ZSgiUk5BIGJpb3NwZWNpbWVuIGluIGZ1c2lvbi1zdGFyZnVzaW9uLnRzdi5neiBtaXNzaW5nIGluIGhpc3RvbGdpZXMgPSAiLCBsZW5ndGgobWlzc2luZ19oaXN0X2lkcykpKQpgYGAKCi0gRnVzaW9uIERHRCBmaWxlIChmdXNpb24tZGdkLnRzdi5neikKYGBge3J9CiMgY2hlY2sgdGhhdCBhbGwgYmlvc3BlY2ltZW4gSURzIGFyZSBpbiB0aGUgZmlsZQpiaW9zcGVjaW1lbl9pZHMgPC0gcmVhZHI6OnJlYWRfdHN2KGZpbGUucGF0aChkYXRhX2RpciwgImZ1c2lvbi1kZ2QudHN2Lmd6IikpICU+JQogIGRwbHlyOjpwdWxsKFNhbXBsZSkgJT4lCiAgdW5pcXVlKCkKaGlzdF9pZHMgPC0gaGlzdF9kZiAlPiUKICBkcGx5cjo6ZmlsdGVyKGV4cGVyaW1lbnRhbF9zdHJhdGVneSA9PSAiVGFyZ2V0ZWQgU2VxdWVuY2luZyIsIAogICAgICAgICAgICAgICAgIWlzLm5hKFJOQV9saWJyYXJ5KSwKICAgICAgICAgICAgICAgIGNvaG9ydCA9PSAiREdEIikgJT4lCiAgZHBseXI6OnB1bGwoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCkKbWlzc2luZ19oaXN0X2lkcyA8LSBzZXRkaWZmKGJpb3NwZWNpbWVuX2lkcywgaGlzdF9pZHMpCmlmIChsZW5ndGgobWlzc2luZ19oaXN0X2lkcykgPiAwKSB7CiAgb3V0cHV0X2ZpbGUgPC0gImZ1c2lvbi1kZ2Qtc2FtcGxlcy1taXNzaW5nLWluLWhpc3RvbG9naWVzLnRzdiIKICBtaXNzaW5nX2hpc3RfaWRzX2RmIDwtIHRpYmJsZTo6dGliYmxlKEtpZHNfRmlyc3RfQmlvc3BlY2ltZW5fSUQgPSBtaXNzaW5nX2hpc3RfaWRzKQogIG1pc3NpbmdfaGlzdF9pZHNfZGYgJT4lIHJlYWRyOjp3cml0ZV90c3YoZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBvdXRwdXRfZmlsZSkpCiAgbWlzc2luZ19oaXN0X2lkc19kZgp9CnByaW50KHBhc3RlKCJSTkEgYmlvc3BlY2ltZW4gaW4gZnVzaW9uLWRnZC50c3YuZ3ogbWlzc2luZyBpbiBoaXN0b2xnaWVzID0gIiwgbGVuZ3RoKG1pc3NpbmdfaGlzdF9pZHMpKSkKYGBgCgojIyMgU2Vzc2lvbiBJbmZvCgpgYGB7ciBzZXNzaW9uaW5mb30Kc2Vzc2lvbkluZm8oKSAKYGBgCg==